/**
 */
package gatperdut.chato.model.Chato.Craft;

import gatperdut.chato.model.Chato.Constant.CraftCategory;

import org.eclipse.emf.cdo.CDOObject;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Craft</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getCommand <em>Command</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getInitMessageSelf <em>Init Message Self</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getInitMessageOthers <em>Init Message Others</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getSuccessMessageSelf <em>Success Message Self</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getSuccessMessageOthers <em>Success Message Others</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getSteps <em>Steps</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getTools <em>Tools</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getCategories <em>Categories</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Craft.Craft#getTime <em>Time</em>}</li>
 * </ul>
 * </p>
 *
 * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft()
 * @model
 * @extends CDOObject
 * @generated
 */
public interface Craft extends CDOObject {
	/**
     * Returns the value of the '<em><b>Command</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Command</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Command</em>' attribute.
     * @see #setCommand(String)
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_Command()
     * @model required="true"
     * @generated
     */
	String getCommand();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Craft.Craft#getCommand <em>Command</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Command</em>' attribute.
     * @see #getCommand()
     * @generated
     */
	void setCommand(String value);

	/**
     * Returns the value of the '<em><b>Init Message Self</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Init Message Self</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Init Message Self</em>' attribute.
     * @see #setInitMessageSelf(String)
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_InitMessageSelf()
     * @model required="true"
     * @generated
     */
	String getInitMessageSelf();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Craft.Craft#getInitMessageSelf <em>Init Message Self</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Init Message Self</em>' attribute.
     * @see #getInitMessageSelf()
     * @generated
     */
	void setInitMessageSelf(String value);

	/**
     * Returns the value of the '<em><b>Init Message Others</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Init Message Others</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Init Message Others</em>' attribute.
     * @see #setInitMessageOthers(String)
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_InitMessageOthers()
     * @model required="true"
     * @generated
     */
	String getInitMessageOthers();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Craft.Craft#getInitMessageOthers <em>Init Message Others</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Init Message Others</em>' attribute.
     * @see #getInitMessageOthers()
     * @generated
     */
	void setInitMessageOthers(String value);

	/**
     * Returns the value of the '<em><b>Success Message Self</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Success Message Self</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Success Message Self</em>' attribute.
     * @see #setSuccessMessageSelf(String)
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_SuccessMessageSelf()
     * @model required="true"
     * @generated
     */
	String getSuccessMessageSelf();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Craft.Craft#getSuccessMessageSelf <em>Success Message Self</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Success Message Self</em>' attribute.
     * @see #getSuccessMessageSelf()
     * @generated
     */
	void setSuccessMessageSelf(String value);

	/**
     * Returns the value of the '<em><b>Success Message Others</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Success Message Others</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Success Message Others</em>' attribute.
     * @see #setSuccessMessageOthers(String)
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_SuccessMessageOthers()
     * @model required="true"
     * @generated
     */
	String getSuccessMessageOthers();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Craft.Craft#getSuccessMessageOthers <em>Success Message Others</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Success Message Others</em>' attribute.
     * @see #getSuccessMessageOthers()
     * @generated
     */
	void setSuccessMessageOthers(String value);

	/**
     * Returns the value of the '<em><b>Steps</b></em>' containment reference list.
     * The list contents are of type {@link gatperdut.chato.model.Chato.Craft.CraftStep}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Steps</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Steps</em>' containment reference list.
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_Steps()
     * @model containment="true" required="true" ordered="false"
     * @generated
     */
	EList<CraftStep> getSteps();

	/**
     * Returns the value of the '<em><b>Tools</b></em>' containment reference list.
     * The list contents are of type {@link gatperdut.chato.model.Chato.Craft.CraftTool}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Tools</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Tools</em>' containment reference list.
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_Tools()
     * @model containment="true" upper="2"
     * @generated
     */
	EList<CraftTool> getTools();

	/**
     * Returns the value of the '<em><b>Categories</b></em>' attribute list.
     * The list contents are of type {@link gatperdut.chato.model.Chato.Constant.CraftCategory}.
     * The literals are from the enumeration {@link gatperdut.chato.model.Chato.Constant.CraftCategory}.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Categories</em>' attribute list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Categories</em>' attribute list.
     * @see gatperdut.chato.model.Chato.Constant.CraftCategory
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_Categories()
     * @model required="true"
     * @generated
     */
	EList<CraftCategory> getCategories();

	/**
     * Returns the value of the '<em><b>Time</b></em>' attribute.
     * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
     * @return the value of the '<em>Time</em>' attribute.
     * @see #setTime(int)
     * @see gatperdut.chato.model.Chato.Craft.CraftPackage#getCraft_Time()
     * @model required="true"
     * @generated
     */
	int getTime();

	/**
     * Sets the value of the '{@link gatperdut.chato.model.Chato.Craft.Craft#getTime <em>Time</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @param value the new value of the '<em>Time</em>' attribute.
     * @see #getTime()
     * @generated
     */
	void setTime(int value);

} // Craft
